package br.com.esrestaurante.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.com.esrestaurante.entidades.Oferecimento;
import br.com.esrestaurante.tipos.TipoCategoriaProduto;
import br.com.esrestaurante.util.HibernateUtil;

public class OferecimentoDAO {

	Session session;

	public OferecimentoDAO() {
		this.session = HibernateUtil.getInstance().getSessionFactory()
				.getCurrentSession();
	}
	
	public void salvar(Oferecimento oferecimento) {
		session.save(oferecimento);
	}
	
	public void merge(Oferecimento oferecimento) {
		session.merge(oferecimento);
	}
	
	public void delete(Oferecimento oferecimento) {
		session.delete(oferecimento);
	}
	
	public Oferecimento getOferecimento(Integer idOferecimento) {
		return (Oferecimento) session.load(Oferecimento.class, idOferecimento);
	}
	
	public List<Oferecimento> listarOferecimentos() {
		return session.createCriteria(Oferecimento.class).list();
	}
	
	public List<Oferecimento> listarOferecimentosPorCategoria(TipoCategoriaProduto tipoCategoria) {
		
		Criteria c = session.createCriteria(Oferecimento.class); 
		c.add(Restrictions.eq("categoria", tipoCategoria));		
		return c.list();
	}
}
